# -*-coding: utf-8 -*-
#引入socket库
import socket

class C_deviceServerBaseTCP1:
    ip = '0.0.0.0'
    port = 8080
    objectSocket = 0

    def __init__(self):
        # 这是进行定义一个ip协议版本AF_INET（IPv4），定义一个传输TCP协议，SOCK_STREAM
        self.objectSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        # 定义ip地址与端口号，ip地址就是服务端的ip地址，端口随便定义，但要与客户端脚本一致
        ip_port=(self.ip, self.port)
        # 绑定一个端口
        self.objectSocket.bind(ip_port)
        # 监听一个端口,这里的数字3是一个常量，表示阻塞3个连接，也就是最大等待数为3
        self.objectSocket.listen(3)

    def accept(self):
        # 接受客户端的数据，并返回两个参数，a为连接信息，b为客户端的ip地址与端口号
        linkageInformation, deviceInformation = self.objectSocket.accept()
        print(linkageInformation)
        print(deviceInformation)
        print("begin to accept")
        return linkageInformation, deviceInformation

    def sand(self, linkageInformation):
        linkageInformation.send(message.encode('utf-8'))

    def recv(self, linkageInformation):
        data=linkageInformation.recv(1024)#客户端发送的数据存储在recv里，1024指最大接受数据的量
        print(data.decode('utf-8'))
        return data

    def close(self):
        self.objectSocket.close()


if __name__ == "__main__":
    print ('device server run')
    aClass = C_deviceServerBaseTCP1()
    linkageInformation, deviceInformation = aClass.accept()
    while True:
        data=linkageInformation.recv(1024)#客户端发送的数据存储在recv里，1024指最大接受数据的量
        print(data.decode('utf-8'))
        message=input("you can say:")
        linkageInformation.send(message.encode('utf-8'))
        if message==('bye'):
            break